//该文件用于创建Vuex中最为核心的store
import Vue from 'vue'
//引入Vuex
import Vuex from 'vuex'
//应用Vuex插件
Vue.use(Vuex)


//创建并暴露store
export default new Vuex.Store({

    state: {

        //存入token
        LoginToken: JSON.parse(sessionStorage.getItem('LoginToken')) || "",
        // 获取名称
        LoginUser: JSON.parse(sessionStorage.getItem('loginUsername')) || "",
        // 0代表未登录，1代表登录，登录状态
        LoginStatus: JSON.parse(sessionStorage.getItem('loginStatues')) || "",
        // 获取所有登录信息
        LoginMessage: JSON.parse(sessionStorage.getItem('LoginMessage')) || "",
        //获取头像信息
        LoginPicture: JSON.parse(sessionStorage.getItem('LoginPicture')) || "",
        // 博客之星
        // starBlog: JSON.parse(sessionStorage.getItem('starBlog')) || "",
        // // 优秀博客
        // excellentBlog: JSON.parse(sessionStorage.getItem('excellentBlog')) || "",
        //角色
        role: JSON.parse(sessionStorage.getItem('LoginPicture')) || {},
    },
    mutations: {
        // 获取所有登录信息
        LoginxMessage(state, message) {
            if (message) {
                // 将获取的token存入session中
                sessionStorage.setItem('LoginMessage', JSON.stringify(message));
                state.LoginMessage = message;
            }
        },
        //存入token
        LoginxToken(state, token) {
            if (token) {
                // 将获取的token存入session中
                sessionStorage.setItem('LoginToken', JSON.stringify(token));
                state.LoginToken = token;
            }
        },
        // 获取名称
        Loginx(state, user) {
            if (user) {
                // 将获取的名称存入session中
                sessionStorage.setItem('loginUsername', JSON.stringify(user));
                state.LoginUser = user;
            }
        },
        // 获取状态
        LoginxStatus(state, status) {
            if (status) {
                // 将获取的状态存入session中
                sessionStorage.setItem('loginStatues', JSON.stringify(status));
                state.LoginStatus = status;
            }
        },
        //获取头像
        LoginPicture(state, picture) {
            if (picture) {
                // 将获取的状态存入session中
                sessionStorage.setItem('userPicture', JSON.stringify(picture));
                state.LoginPicture = picture;
            }
        },

        // // 获取博客之星的数据
        // StarBlog(state, blog) {
        //     if (blog) {
        //         sessionStorage.setItem('StarBlog', JSON.stringify(blog));
        //         state.starBlog = blog;
        //     }
        // },
        // // 获取优秀博客的数据
        // ExcellentBlog(state, excellentblog) {
        //     if (excellentblog) {
        //         sessionStorage.setItem('excellentBlog', JSON.stringify(excellentblog));
        //         state.excellentBlog = excellentblog;
        //     }
        // }
        // 获取角色
        Role(state, role) {
            if (role) {
                sessionStorage.setItem('role', JSON.stringify(role));
                state.role = role;
            }
        }


    },
    actions: {},
    getters: {
        // 获取所有登录信息
        getLoginxMessage(state) {
            return state.LoginMessage = state.LoginMessage.message;
        },
        //存入token
        getLoginToken(state) {
            return state.LoginToken = state.LoginToken.token;
        },
        //从vuex中获取用户名，必须经过getter进行处理
        getLoginUserName(state) {
            // 判断状态1为登录状态，0为未登录状态
            if (state.LoginStatus == 1) {
                state.LoginUser = state.LoginUser.UserName;
                return state.LoginUser;
            } else if (state.LoginStatus == 0) {
                state.LoginUser = '未登录';
                return state.LoginUser;
            }
            // return state.LoginUser ? state.LoginUser.UserName : '未登录';
        },
        // 获取状态
        getLoginStatus(state) {
            return state.LoginStatus = state.LoginStatus.UserStatus;
        },
        //获取头像
        getLoginPicture(state) {
            return state.LoginPicture = state.LoginPicture.picture;
        },
        // 获取博客之星数据
        // getStarBlog(state) {
        //     return state.starBlog = state.starBlog.blog;
        // },
        // // 获取优秀博客数据
        // getExcellentBlog(state) {
        //     return state.excellentBlog = state.excellentBlog.excellentBlog;
        // }
        getRole(state) {
            return state.role = state.role.roles;
        }

    },
})